const jwt = require('./jwt');

module.exports =(req,res,next)=>{
    // 做全局默认值
    // 处理公共参数 !address address headers都能收到
    req.query._page = req.query._page ? req.query._page - 1 : require('../config/global')._page;
    req.query._limit = req.query._limit ? req.query._limit - 0 : require('../config/global')._limit;
    req.query.q = req.query.q ? req.query.q : require('../config/global').q;
    req.query._sort = req.query._sort ? req.query._sort: require('../config/global')._sort;

    req.body._page = req.body._page ? req.body._page - 1 : require('../config/global')._page;
    req.body._limit = req.body._limit ? req.body._limit - 0 : require('../config/global')._limit;
    req.body.q = req.body.q ? req.body.q : require('../config/global').q;
    req.body._sort = req.body._sort ? req.body._sort: require('../config/global')._sort;
    
    req.headers._page = req.headers._page ? req.headers._page - 1 : require('../config/global')._page;
    req.headers._limit = req.headers._limit ? req.headers._limit - 0 : require('../config/global')._limit;
    req.headers.q = req.headers.q ? req.headers.q : require('../config/global').q;
    req.headers._sort = req.headers._sort ? req.headers._sort: require('../config/global')._sort;
    
    // 处理公共授权
    if(/login|reg|logout/.test(req.url)){
        next()
    }else{
        //校验是否携带token，是否合法
        let token = req.headers.token || req.body.token || req.query.token;
        jwt.verify(token).then(
            decode => {
                req.query.decode = decode;
                next();
            }
        ).catch(
            message => res.send({err:2,msg:'token过期或无效，jwt.js设置有效期'+message})
            // send自带结束
        )
    }
}